package rsj.sql.product;

import com.rlyy.aibase.utils.base.Node;
import com.rlyy.aibase.utils.base.TableNode;
import rsj.annotation.DynamicSelect;
import rsj.api.report.entity.ReportParam;
import rsj.service.report.dynamic.ProductCategoryReportDynamicStatement;

/**
 * 接口分类报表
 *
 * @author yuanqinglong
 * @since 2021/7/15 14:46
 */
public interface ProductCategoryReportDao {


    /**
     * 接口报告列表
     *
     * @param reportParam 报告参数
     * @return {@link TableNode}
     */
    @DynamicSelect(type = ProductCategoryReportDynamicStatement.class, method = "productCategoryReportListSql")
    TableNode productCategoryReportList(ReportParam reportParam);


    /**
     * 接口分类报告数
     *
     * @param reportParam 报告参数
     * @return {@link Node}
     */
    @DynamicSelect(type = ProductCategoryReportDynamicStatement.class, method = "productCategoryReportCountSql")
    Node productCategoryReportCount(ReportParam reportParam);


    /**
     * 导出接口报告列表
     *
     * @param reportParam 报告参数
     * @return {@link TableNode}
     */
    @DynamicSelect(type = ProductCategoryReportDynamicStatement.class, method = "productCategoryReportExportSql")
    TableNode productCategoryReportExportList(ReportParam reportParam);





    /**
     * 接口报告详情列表
     *
     * @param reportParam 报告参数
     * @return {@link TableNode}
     */
    @DynamicSelect(type = ProductCategoryReportDynamicStatement.class, method = "productCategoryReportDetailListSql")
    TableNode productCategoryReportDetailList(ReportParam reportParam);


    /**
     * 接口分类报告详情数
     *
     * @param reportParam 报告参数
     * @return {@link Node}
     */
    @DynamicSelect(type = ProductCategoryReportDynamicStatement.class, method = "productCategoryReportDetailCountSql")
    Node productCategoryReportDetailCount(ReportParam reportParam);


    /**
     * 导出接口报告详情列表
     *
     * @param reportParam 报告参数
     * @return {@link TableNode}
     */
    @DynamicSelect(type = ProductCategoryReportDynamicStatement.class, method = "productCategoryReportDetailExportSql")
    TableNode productCategoryReportExportDetailList(ReportParam reportParam);
}
